home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 7
/
Amiga Format AFCD07 (Dec 1996, Issue 91).iso
/
serious
/
shareware
/
programming
/
ue312amiga
/
amiga
/
amiga.diffs
< prev
next >
Wrap
Text File
|
1996-04-24
|
22KB
|
851 lines
diff -adrc orig/h/eproto.h ue312/h/eproto.h
*** orig/h/eproto.h Wed Apr 21 15:22:28 1993
--- ue312/h/eproto.h Wed Apr 24 16:24:00 1996
***************
*** 36,41 ****
--- 36,47 ----
extern VOID PASCAL NEAR vtscreen (SCREEN *sp);
#endif
+ #if AMIGA
+ #ifdef __SASC
+ int FileReq(char *, char *, unsigned);
+ #endif
+ #endif
+
#if CALLED
extern int emacs(int argc, char *argv[]);
#endif
***************
*** 541,546 ****
--- 547,553 ----
#include <stdlib.h>
#include <string.h>
#else
+ #if !(defined(__SASC) && defined(_STRING_H))
char *strcat(char *, char *);
char *strcpy(char *, char *);
int strlen(char *);
***************
*** 547,552 ****
--- 554,560 ----
int strncmp(char *, char *, int);
char *strchr(char *, int);
int strcmp(char *, char *);
+ #endif
char *realloc(char *block, int siz);
#if RAMSIZE == 0
char *malloc(int);
diff -adrc orig/src/amigados.c ue312/src/amigados.c
*** orig/src/amigados.c Tue Mar 02 16:23:54 1993
--- ue312/src/amigados.c Wed Apr 24 17:16:33 1996
***************
*** 4,15 ****
--- 4,69 ----
*/
#include <stdio.h>
+ #ifdef __SASC
+ #include <string.h>
+ #else
+ #define __aligned
+ #endif
+
#include "estruct.h"
#if AMIGA
#include <exec/types.h>
#include <exec/io.h>
+ #include <exec/memory.h>
+ #include <exec/libraries.h>
+ #include <devices/inputevent.h>
+ #include <graphics/text.h>
+ #include <graphics/gfxbase.h>
+ #include <graphics/view.h>
+ #include <graphics/displayinfo.h>
#include <intuition/intuition.h>
+ #include <intuition/intuitionbase.h>
+ #include <intuition/screens.h>
+ #include <utility/tagitem.h>
+ #include <libraries/asl.h>
#include <devices/console.h>
+ #include <dos/dos.h>
+
+ #ifdef __SASC
+ #include <proto/dos.h>
+ #include <clib/exec_protos.h>
+ #include <clib/graphics_protos.h>
+ #include <clib/intuition_protos.h>
+ #include <clib/console_protos.h>
+ #include <clib/asl_protos.h>
+ #include <pragmas/exec_pragmas.h>
+ #include <pragmas/graphics_pragmas.h>
+ #include <pragmas/intuition_pragmas.h>
+ #include <pragmas/console_pragmas.h>
+ #include <pragmas/asl_pragmas.h>
+
+ void in_init(void);
+ int in_check(void);
+ void in_put(int);
+ int in_get(void);
+ int mod(int);
+ int sendcon(char *buf);
+ int doevent(void);
+ void dokey(struct InputEvent *);
+ int stuffibuf(int, int, int );
+ int spawncli(int , int );
+ int spawn(int , int );
+ int execprg(int , int );
+ int pipecmd(int , int );
+ void adoshello(void);
+ char *MakePathname(char *, char *);
+ int FileReq(char *, char *, unsigned);
+ #endif
+
+ #ifdef AZTEC_C
+ #define memset(a,b,c) setmem(a,c,b)
+ #endif
+
#include "eproto.h"
#include "edef.h"
#include "elang.h"
***************
*** 16,33 ****
#define INTUITION_REV 0L
#define NEW 1006L
! #define CRWIDTH 8
#define CRHEIGHT 8
! struct IntuitionBase *IntuitionBase;
struct Window *win;
struct IOStdReq con; /* ptr to console device driver handle */
/* Intuition Function type declarations */
! struct IntuitionBase *OpenLibrary();
struct Window *OpenWindow();
! struct IntuiMessage *GetMsg();
typedef struct {
short rw_code; /* normal keycode to generate */
--- 70,108 ----
#define INTUITION_REV 0L
#define NEW 1006L
!
! #ifdef FORCE_TOPAZ80 /* FORCE_TOPAZ80 is obsolete, now we're font sensitive */
! #define CRWIDTH 8 /* constant values for TOPAZ80 */
#define CRHEIGHT 8
+ #else
+ #define CRWIDTH theFont->tf_XSize /* now font sensitive, */
+ #define CRHEIGHT theFont->tf_YSize /* use variable values */
+ #endif
! struct IntuitionBase *IntuitionBase = 0L;
! struct GfxBase *GfxBase = 0L;
! struct Library *ConsoleDevice = 0L;
! struct Library *AslBase = 0L;
!
! struct Screen *scr;
struct Window *win;
struct IOStdReq con; /* ptr to console device driver handle */
+ static struct TextFont *theFont;
+ #ifdef FORCE_TOPAZ80 /* FORCE_TOPAZ80 is obsolete, now we're font sensitive */
+ static struct TextAttr *theTextAttr;
+ #endif
/* Intuition Function type declarations */
! #ifndef __SASC
! struct Library *OpenLibrary();
struct Window *OpenWindow();
! struct Message *GetMsg();
! #endif
!
! #ifdef AMIGA
! extern NOSHARE TERM term;
! #endif
typedef struct {
short rw_code; /* normal keycode to generate */
***************
*** 165,177 ****
int in_next = 0; /* pos to retrieve next input character */
int in_last = 0; /* pos to place most recent input character */
! in_init() /* initialize the input buffer */
{
in_next = in_last = 0;
}
! in_check() /* is the input buffer non-empty? */
{
if (in_next == in_last)
--- 240,252 ----
int in_next = 0; /* pos to retrieve next input character */
int in_last = 0; /* pos to place most recent input character */
! void in_init() /* initialize the input buffer */
{
in_next = in_last = 0;
}
! int in_check() /* is the input buffer non-empty? */
{
if (in_next == in_last)
***************
*** 180,186 ****
return(TRUE);
}
! in_put(event)
int event; /* event to enter into the input buffer */
--- 255,261 ----
return(TRUE);
}
! void in_put(event)
int event; /* event to enter into the input buffer */
***************
*** 206,212 ****
*/
ttopen()
{
! struct NewWindow new_win;
int i;
#if AZTEC
extern Enable_Abort; /* Turn off ctrl-C interrupt */
--- 281,293 ----
*/
ttopen()
{
! struct Screen *DefaultScr;
! struct NewScreen *new_scr = 0L;
! __aligned struct NewWindow new_win;
! #ifdef FORCE_TOPAZ80
! __aligned static char fontname[] = "topaz.font";
! #endif
!
int i;
#if AZTEC
extern Enable_Abort; /* Turn off ctrl-C interrupt */
***************
*** 215,265 ****
#endif
strcpy(os, "AMIGADOS");
/* open the intuition library */
IntuitionBase = (struct IntuitionBase *)
OpenLibrary("intuition.library", INTUITION_REV);
if (IntuitionBase == NULL) {
printf("%%Can not open Intuition\n");
exit(-1);
}
/* initialize the new windows attributes */
new_win.LeftEdge = 0;
new_win.TopEdge = 0;
new_win.Width = 640;
! new_win.Height = 200;
new_win.DetailPen = 0;
new_win.BlockPen = 1;
new_win.Title = (unsigned char *)"MicroEMACS 3.12g/Amiga";
new_win.Flags = WINDOWCLOSE | SMART_REFRESH | ACTIVATE |
WINDOWDRAG | WINDOWDEPTH | WINDOWSIZING | SIZEBRIGHT |
RMBTRAP | NOCAREREFRESH;
new_win.IDCMPFlags = CLOSEWINDOW | NEWSIZE | MOUSEBUTTONS |
RAWKEY;
! new_win.Type = WBENCHSCREEN;
new_win.FirstGadget = NULL;
new_win.CheckMark = NULL;
! new_win.Screen = NULL;
new_win.BitMap = NULL;
new_win.MinWidth = 100;
new_win.MinHeight = 25;
! new_win.MaxWidth = 640;
! new_win.MaxHeight = 200;
/* open the window! */
win = (struct Window *)OpenWindow(&new_win);
if (win == NULL) {
printf("%%Can not open a window\n");
exit(-2);
}
!
/* and open up the console for output */
con.io_Data = (APTR)win;
! OpenDevice("console.device", 0, &con, 0);
/* and init all the keyboard flags */
r_shiftflag = FALSE;
! l_shiftflag = FALSE; r_altflag = FALSE;
l_altflag = FALSE;
r_amiflag = FALSE;
l_amiflag = FALSE;
--- 296,458 ----
#endif
strcpy(os, "AMIGADOS");
+ GfxBase = (struct GfxBase *)OpenLibrary("graphics.library", 33L);
+ if (GfxBase == NULL) {
+ printf("%%Can not open graphics.library\n");
+ exit(-1);
+ }
+
/* open the intuition library */
IntuitionBase = (struct IntuitionBase *)
OpenLibrary("intuition.library", INTUITION_REV);
if (IntuitionBase == NULL) {
+ if (GfxBase) CloseLibrary((struct Library *)GfxBase);
printf("%%Can not open Intuition\n");
exit(-1);
}
+ /* open the ASL library */
+ AslBase = (struct Library *)
+ OpenLibrary("asl.library", 38L);
+ if (AslBase == NULL) {
+ if (GfxBase) CloseLibrary((struct Library *)GfxBase);
+ if (IntuitionBase) CloseLibrary((struct Library *)IntuitionBase);
+ printf("%%Can not open asl.library\n");
+ exit(-1);
+ }
+
+ #ifdef FORCE_TOPAZ80
+ theTextAttr = AllocMem(sizeof(struct TextAttr),MEMF_PUBLIC|MEMF_CLEAR);
+ if (theTextAttr == NULL) {
+ printf("%%Not enough memory\n");
+ exit(-2);
+ };
+ theTextAttr->ta_Name = fontname;
+ theTextAttr->ta_YSize = 8;
+ theTextAttr->ta_Style = FS_NORMAL;
+ theTextAttr->ta_Flags = FPF_ROMFONT;
+
+ theFont = OpenFont(theTextAttr);
+ #else
+ theFont = GfxBase->DefaultFont;
+ #endif
+
+ memset(&new_win,0,sizeof(struct NewWindow));
+
+ #ifndef DEBUG_PRE_V39
+ if (IntuitionBase->LibNode.lib_Version >= 39) {
+ scr = OpenScreenTags(0L,SA_LikeWorkbench,TRUE,
+ SA_Title,(ULONG)((UBYTE*)"MicroEMACS 3.12g/Amiga"),
+ SA_Depth,1,
+ SA_SysFont,0,
+ SA_Type,CUSTOMSCREEN,
+ SA_BlockPen,1,SA_DetailPen,0);
+ }
+ else {
+ #else
+ /* provide a matching bracket for pre V39 debugging */
+ {
+ #endif
+ new_scr = AllocMem((ULONG)sizeof(struct NewScreen),MEMF_PUBLIC|MEMF_CLEAR);
+ if (new_scr == 0L) {
+ if (GfxBase) CloseLibrary((struct Library *)GfxBase);
+ if (IntuitionBase) CloseLibrary((struct Library *)IntuitionBase);
+ if (AslBase) CloseLibrary((struct Library *)AslBase);
+ printf("%%Can not allocate NewScreen structure\n");
+ exit(-1);
+ }
+ DefaultScr = AllocMem(sizeof(struct Screen),MEMF_PUBLIC|MEMF_CLEAR);
+ if (DefaultScr != 0L) { int success;
+ success = GetScreenData(DefaultScr,sizeof(struct Screen), WBENCHSCREEN, NULL);
+ if (success) {
+ new_scr->Width = DefaultScr->Width;
+ new_scr->Height= DefaultScr->Height;
+ new_scr->ViewModes = DefaultScr->ViewPort.Modes;
+ }
+ else {
+ new_scr->Width = 640;
+ new_scr->Height= 200;
+ new_scr->ViewModes = HIRES;
+ }
+ FreeMem(DefaultScr,sizeof(struct Screen));
+ DefaultScr = 0L;
+ }
+ else {
+ new_scr->Width = 640;
+ new_scr->Height= 200;
+ new_scr->ViewModes = HIRES;
+ }
+ new_scr->LeftEdge = 0;
+ new_scr->TopEdge = 0;
+ new_scr->Depth = 1;
+ new_scr->DetailPen = 0;
+ new_scr->BlockPen = 1;
+
+ new_scr->Type = CUSTOMSCREEN;
+ #ifdef FORCE_TOPAZ80
+ new_scr->Font = theTextAttr; /* force use of TOPAZ80 */
+ #else
+ new_scr->Font = 0L; /* Use system default font */
+ #endif
+ new_scr->DefaultTitle = (unsigned char *)"MicroEMACS 3.12g/Amiga";
+ scr = OpenScreen(new_scr);
+ }
+ if (scr == NULL) {
+ printf("%%Can not open a screen\n");
+ exit(-2);
+ }
+
/* initialize the new windows attributes */
new_win.LeftEdge = 0;
new_win.TopEdge = 0;
new_win.Width = 640;
! new_win.Height = scr->Height - scr->BarHeight;
new_win.DetailPen = 0;
new_win.BlockPen = 1;
new_win.Title = (unsigned char *)"MicroEMACS 3.12g/Amiga";
+ /*
new_win.Flags = WINDOWCLOSE | SMART_REFRESH | ACTIVATE |
WINDOWDRAG | WINDOWDEPTH | WINDOWSIZING | SIZEBRIGHT |
RMBTRAP | NOCAREREFRESH;
new_win.IDCMPFlags = CLOSEWINDOW | NEWSIZE | MOUSEBUTTONS |
RAWKEY;
! */
! new_win.Flags = WINDOWCLOSE | SMART_REFRESH | ACTIVATE |
! WINDOWDRAG | SIZEBRIGHT | BACKDROP | BORDERLESS |
! RMBTRAP | NOCAREREFRESH;
! new_win.IDCMPFlags = CLOSEWINDOW | MOUSEBUTTONS |
! RAWKEY;
! new_win.Type = CUSTOMSCREEN;
new_win.FirstGadget = NULL;
new_win.CheckMark = NULL;
! new_win.Screen = scr;
new_win.BitMap = NULL;
new_win.MinWidth = 100;
new_win.MinHeight = 25;
! new_win.MaxWidth = scr->Width;
! new_win.MaxHeight = scr->Height - scr->BarHeight;
/* open the window! */
win = (struct Window *)OpenWindow(&new_win);
if (win == NULL) {
+ if (scr) CloseScreen(scr);
+ if (new_scr) FreeMem(new_scr,(ULONG)sizeof(struct NewScreen));
printf("%%Can not open a window\n");
exit(-2);
}
! #ifdef FORCE_TOPAZ80
! if (theFont != NULL) SetFont(win->RPort,theFont);
! #endif
!
/* and open up the console for output */
con.io_Data = (APTR)win;
! OpenDevice("console.device", 0, (struct IORequest *)(&con), 0);
! ConsoleDevice = (struct Library *)con.io_Device;
/* and init all the keyboard flags */
r_shiftflag = FALSE;
! l_shiftflag = FALSE;
! r_altflag = FALSE;
l_altflag = FALSE;
r_amiflag = FALSE;
l_amiflag = FALSE;
***************
*** 269,282 ****
/* initialize our private event queue */
in_init();
/* set the current sizes */
! newwidth(TRUE, 77);
! newsize(TRUE, 23);
/* on all screens we are not sure of the initial position
of the cursor */
ttrow = 999;
ttcol = 999;
}
/*
--- 462,480 ----
/* initialize our private event queue */
in_init();
+ /* font sensitive height and width calculation */
+ term.t_ncol = term.t_mcol = ((win->Width+1)/theFont->tf_XSize);
+ term.t_nrow = term.t_mrow = ((win->Height+1)/theFont->tf_YSize)-1;
/* set the current sizes */
! newwidth(TRUE, term.t_mcol);
! newsize(TRUE, term.t_mrow);
/* on all screens we are not sure of the initial position
of the cursor */
ttrow = 999;
ttcol = 999;
+
+ if (new_scr) FreeMem(new_scr,(ULONG)sizeof(struct NewScreen));
}
/*
***************
*** 291,299 ****
ttflush();
/* and now close up shop */
! CloseDevice(&con);
! CloseWindow(win);
OpenWorkBench();
}
/*
--- 489,506 ----
ttflush();
/* and now close up shop */
! CloseDevice((struct IORequest *)(&con));
! ConsoleDevice = 0L;
! if (win) CloseWindow(win);
! if (scr) CloseScreen(scr);
! #ifdef FORCE_TOPAZ80
! if (theFont) CloseFont(theFont);
! if (theTextAttr) FreeMem(theTextAttr,(ULONG)(sizeof(struct TextAttr)));
! #endif
OpenWorkBench();
+ if (AslBase) CloseLibrary(AslBase);
+ if (IntuitionBase) CloseLibrary((struct Library *)IntuitionBase);
+ if (GfxBase) CloseLibrary((struct Library *)GfxBase);
}
/*
***************
*** 377,382 ****
--- 584,590 ----
{
register int eventX, eventY; /* local copies of the event info */
struct IntuiMessage *event; /* current event to repond to */
+ __aligned struct InputEvent ievent = {NULL,IECLASS_RAWKEY,0,0,0};
ULONG class; /* class of event */
USHORT code; /* data code */
SHORT x,y; /* mouse x/y position at time of event */
***************
*** 386,400 ****
Wait(1 << win->UserPort->mp_SigBit);
/* get the event and parse it up */
! while (event = GetMsg(win->UserPort)) {
class = event->Class;
code = event->Code;
eventX = event->MouseX;
eventY = event->MouseY;
! ReplyMsg(event);
/* a normal keystroke? */
! if (class == RAWKEY) { dokey(code);
continue;
}
--- 594,613 ----
Wait(1 << win->UserPort->mp_SigBit);
/* get the event and parse it up */
! while (event = (struct IntuiMessage *)GetMsg(win->UserPort)) {
class = event->Class;
code = event->Code;
eventX = event->MouseX;
eventY = event->MouseY;
! ievent.ie_Code=code;
! ievent.ie_Qualifier=event->Qualifier;
! ievent.ie_position.ie_addr = *((APTR*)event->IAddress);
!
! ReplyMsg((struct Message *)event);
/* a normal keystroke? */
! if (class == RAWKEY) {
! dokey(&ievent);
continue;
}
***************
*** 406,421 ****
/* resolve the mouse address (border adjusted) */
if (class == NEWSIZE) {
! x = (win->Width - 5) / CRWIDTH;
! y = (win->Height - 10) / CRHEIGHT;
} else {
! x = (eventX - 5) / CRWIDTH;
! y = (eventY - 10) / CRHEIGHT;
}
! if (x > 77)
! x = 77;
! if (y > 23)
! y = 23;
/* are we resizing the window? */
if (class == NEWSIZE) {
--- 619,634 ----
/* resolve the mouse address (border adjusted) */
if (class == NEWSIZE) {
! x = (win->Width) / CRWIDTH;
! y = (win->Height-scr->BarHeight) / CRHEIGHT;
} else {
! x = (eventX) / CRWIDTH;
! y = (eventY-scr->BarHeight) / CRHEIGHT;
}
! if (x > term.t_mcol)
! x = term.t_mcol;
! if (y > term.t_mrow)
! y = term.t_mrow;
/* are we resizing the window? */
if (class == NEWSIZE) {
***************
*** 462,482 ****
con.io_Command = CMD_WRITE;
/* and perform the I/O */
! SendIO(&con);
}
/* process an incomming keyboard code */
! dokey(code)
!
! int code; /* raw keycode to convert */
!
{
register int ekey; /* translate emacs key */
register int dir; /* key direction (up/down) */
char buf[NSTRING];
/* decode the direction of the key */
dir = TRUE;
if (code > 127) {
--- 675,698 ----
con.io_Command = CMD_WRITE;
/* and perform the I/O */
! SendIO((struct IORequest *)(&con));
}
/* process an incomming keyboard code */
! void dokey(IEvent)
! struct InputEvent *IEvent;
{
register int ekey; /* translate emacs key */
register int dir; /* key direction (up/down) */
char buf[NSTRING];
+ char cvbuf[16];
+ int numchars;
+ int code = IEvent->ie_Code;
+ #ifdef OLDSTYLE_KEYS
+ /* this works for US keyboard only, totally useless for intl. keyboards */
/* decode the direction of the key */
dir = TRUE;
if (code > 127) {
***************
*** 516,521 ****
--- 732,782 ----
/* now apply the ALTD modifier */
if (r_altflag || l_altflag)
ekey |= ALTD;
+ #else
+ /* For intl. keyboards use this here */
+ /* decode the direction of the key */
+ dir = TRUE;
+ if (code > 127) {
+ code = code & 127;
+ dir = FALSE; /* Key released */
+ }
+ numchars = RawKeyConvert(IEvent,cvbuf,16,0L);
+
+ if (numchars == 1) {
+ ekey = cvbuf[0];
+ /* up keystrokes are ignored for the rest of these */
+ }
+ else {
+ if (code >= 0x60) {
+ switch (code) {
+
+ case 0x60: l_shiftflag = dir; break;
+ case 0x61: r_shiftflag = dir; break;
+ case 0x62: lockflag = dir; break;
+ case 0x63: ctrlflag = dir; break;
+ case 0x64: l_altflag = dir; break;
+ case 0x65: r_altflag = dir; break;
+ case 0x66: l_amiflag = dir; break;
+ case 0x67: r_amiflag = dir; break;
+
+ }
+ return;
+ }
+ /* first apply the shift and control modifiers */
+ if (ctrlflag)
+ ekey = keytrans[code].rw_ccode;
+ else if (l_shiftflag || r_shiftflag || lockflag)
+ ekey = keytrans[code].rw_scode;
+ else
+ ekey = keytrans[code].rw_code;
+ }
+ if (dir == FALSE) return;
+
+ if ((numchars!=1) || ((ekey != '@') && (ekey < 0x7F)))
+ /* now apply the ALTD modifier */
+ if (r_altflag || l_altflag)
+ ekey |= ALTD;
+ #endif
/* apply the META prefix */
if (r_amiflag || l_amiflag) {
***************
*** 886,892 ****
}
#else
! adoshello()
{
}
#endif
--- 1147,1198 ----
}
#else
! void adoshello(void)
{
}
#endif
+
+ char *MakePathname(Path, Filename)
+ char *Path;
+ char *Filename;
+ {
+ static char namebuffer[256];
+
+ strcpy(namebuffer,Path);
+ if (*namebuffer != '\0') {
+ char ch=namebuffer[strlen(namebuffer)-1];
+ if ((ch != ':') && (ch != '/')) strcat(namebuffer,"/");
+ }
+ strcat(namebuffer,Filename);
+ return namebuffer;
+ } /* MakePathname */
+
+ int FileReq(rtitle, filename, maxlen)
+ char *rtitle;
+ char *filename;
+ unsigned maxlen;
+ {
+ struct FileRequester *frp;
+ static char DirStr[256];
+ static char FileStr[256];
+ int rc;
+
+ frp = AllocAslRequestTags(ASL_FileRequest,ASLFR_Screen,(ULONG)scr,
+ ASLFR_TitleText,(ULONG)rtitle,
+ ASLFR_DoPatterns,TRUE,
+ ASLFR_InitialPattern,(ULONG)((UBYTE *)"~(#?.info)"),
+ ASLFR_InitialHeight,(scr->Height*11L) >> 4,
+ TAG_DONE);
+ if (frp != 0L) {
+ if (RequestFile(frp) != 0) {
+ strncpy(DirStr,frp->fr_Drawer,256);
+ strncpy(FileStr,frp->fr_File,256);
+ strncpy(filename,MakePathname(DirStr,FileStr),maxlen);
+ rc = 0;
+ }
+ else rc = -1;
+ FreeFileRequest(frp);
+ }
+ else rc = -1;
+ return rc;
+ } /* FileReq */
diff -adrc orig/src/input.c ue312/src/input.c
*** orig/src/input.c Wed Apr 21 10:23:04 1993
--- ue312/src/input.c Wed Apr 24 13:58:38 1996
***************
*** 207,212 ****
--- 207,216 ----
if (!FILENAMEREPLY(prompt, sp, NFILEN))
return NULL;
#else
+ #if AMIGA
+ static char sp[NFILEN];
+ if (FileReq(prompt,sp,NFILEN)!=0) return NULL;
+ #else
char *sp; /* ptr to the returned string */
/* get a file name, default to current buffer's */
***************
*** 214,219 ****
--- 218,224 ----
sp = complete(prompt, curbp->b_fname, CMP_FILENAME, NFILEN);
else
sp = complete(prompt, NULL, CMP_FILENAME, NFILEN);
+ #endif
#endif
#if MSDOS | OS2
/* change forward slashes to back */
diff -adrc orig/src/search.c ue312/src/search.c
*** orig/src/search.c Tue Apr 20 14:56:42 1993
--- ue312/src/search.c Wed Apr 24 16:33:03 1996
***************
*** 6,11 ****
--- 6,14 ----
*/
#include <stdio.h>
+ #ifdef __STDC__
+ #include <string.h>
+ #endif
#include "estruct.h"
#include "eproto.h"
#include "edef.h"
diff -adrc orig/src/unix.c ue312/src/unix.c
*** orig/src/unix.c Wed Apr 21 11:09:20 1993
--- ue312/src/unix.c Wed Apr 24 13:58:39 1996
***************
*** 899,904 ****
--- 899,913 ----
/* Get size from termcap */
term.t_nrow = tgetnum("li") - 1;
term.t_ncol = tgetnum("co");
+
+ if (NULL!=(cp=getenv("LINES"))) { int row;
+ sscanf (cp, "%d", &row);
+ if (row) {
+ term.t_mrow= row-1;
+ term.t_nrow= row-1;
+ }
+ }
+
if (term.t_nrow < 3 || term.t_ncol < 3) {
puts("Screen size is too small!");
exit(1);
***************
*** 1325,1332 ****
#if USG || AUX || SMOS || HPUX8 || XENIX
/** Rename a file **/
int rename(file1, file2)
! char * file1; /* Old file name */
! char * file2; /* New file name */
{
struct stat buf1;
struct stat buf2;
--- 1334,1341 ----
#if USG || AUX || SMOS || HPUX8 || XENIX
/** Rename a file **/
int rename(file1, file2)
! const char *file1; /* Old file name */
! const char *file2; /* New file name */
{
struct stat buf1;
struct stat buf2;